package modules::Conference;

use encoding "utf8";
use utf8;

sub new {
   my $self = {};
   shift;
   return bless $self;
   }

# Создаются списки ников  в конференциях
sub presence {
   my ($self, %args) = @_;
   if ($args{type} ne 'unavailable' && $self->{$args{confa}} !~ /\Q<$args{name}>\E/) {
       $self->{$args{confa}} .= "<$args{name}>";
       return $args{name};
   } elsif ($args{type} eq 'unavailable') {
       $self->{$args{confa}} =~ s/\Q<$args{name}>\E//;
   }
}

# Создаются списки JID'ов  в конференциях
sub jidpresence {
   my ($self, %args) = @_;
   if ($args{type} ne 'unavailable' && $self->{$args{confa}} !~ /\Q<$args{jid}>\E/) {
       $self->{$args{confa}} .= "<$args{jid}>";
       return $args{jid};
   } elsif ($args{type} eq 'unavailable') {
       $self->{$args{confa}} =~ s/\Q<$args{jid}>\E//;
   }
}

# Ищется ник в конференции
sub proverka {
    my ($self, %args) = @_;
    $result = $self->{$args{confa}} =~ /\Q<$args{name}>\E/ ? да : нет;
    return $result;
}

# Подсчет участников в конференции
sub users {
   my ($self, %args) = @_;
   $result = scalar(split /></, $self->{$args{confa}});
   return $result;
}

# При выходе бота конференция удаляется
sub delconf {
    my ($self, %args) = @_;
    delete ($self->{$args{confa}});
}

1;